package cn.iocoder.yudao.module.vote.controller.admin.voteHead.vo;

import cn.iocoder.yudao.module.vote.controller.admin.voteItem.vo.VoteItemSaveReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 投票头新增/修改 Request VO")
@Data
public class VoteHeadSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotEmpty(message = "活动名称不能为空")
    private String name;

    @Schema(description = "活动编号")
    private String actNo;

    @Schema(description = "活动封面图key", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "活动封面图key不能为空")
    private String actCoverKey;

    @Schema(description = "活动视频key")
    private String actVideoKeys;

    @Schema(description = "活动轮播图keys")
    private String actPicKeys;

    @Schema(description = "简介")
    private String subject;

    @Schema(description = "描述", example = "随便")
    private String description;

    @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "排序不能为空")
    private Integer sort;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotEmpty(message = "状态不能为空")
    private String status;

    @Schema(description = "投票开始时间")
    private LocalDateTime startTime;

    @Schema(description = "投票结束时间")
    private LocalDateTime endTime;

    @Schema(description = "投票规则（单选投票、多选投票）")
    private String voteRule;

    @Schema(description = "投票次数（总、每天）")
    private String voteRange;

    @Schema(description = "投票次数（ /次）")
    private Integer voteRangeItem;

    @Schema(description = "发起人id", example = "3843")
    private Long userId;

    @Schema(description = "票数查看规则（投票前可看票数、投票后可看票数、结束后可看票数、仅发起人可看票数）")
    private String resultRule;

    @Schema(description = "选项的类型（文字投票、图片投票、视频投票）", example = "1")
    private String voteType;

    private List<VoteItemSaveReqVO> itemList;
}